package com.tsy.server.system.service;

import com.tsy.server.system.entity.Project;
import com.tsy.server.system.entity.dto.ProjectDTO;
import com.tsy.server.system.entity.vo.ProjectQueryVO;
import com.tsy.server.system.entity.vo.ProjectVO;

import java.util.List;

/**
 * 项目管理服务接口
 */
public interface ProjectService {


    /**
     * 项目列表
     * @param projectQueryVO 查询条件
     * @return
     */
    List<Project> listProjects(ProjectQueryVO projectQueryVO);

    /**
     * 创建项目
     * @param projectDTO 项目信息
     */
    void createProject(ProjectDTO projectDTO);

    /**
     * 更新项目信息
     * @param projectDTO 项目信息
     */
    void updateProject(ProjectDTO projectDTO);

    /**
     * 删除项目
     * @param projectId 项目ID
     */
    void deleteProject(Long projectId);

    /**
     * 获取项目详情
     * @param projectId 项目ID
     * @return 项目详情
     */
    ProjectVO getProjectDetail(Long projectId);

    /**
     * 通过加入码加入项目
     * @param joinCode 加入码
     */
    void joinProjectByCode(String joinCode);


    void archiveProject(Long id);
}